JediDog Fix (v2)

New version available! Find it here.

By JediDog
Date: 01-24-2008
Version: v2

Download

Readme

*****************************************

Jedi Knight II: Jedi Outcast MODIFICATION

*****************************************

~!~ JediDog Fix� v2 ~!~

~For JK2 1.04

Note: if you are reading this window'd in a notepad, I recommend maximizing it and going to format and checking word wrap, so it is easier to read.

*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Modification contains:
Patches & fixes:
-Anti Nodel Flood
-Anti Saber Flood
-Anti Name Flood
-Anti MSG Boom
-Anti Name Crash
-Anti Force Crash
-Anti Fake players

*~~~~~=~~~~~*
-NEW IN VERSION 2: Added the 3 commands just incase there was some bug that would appear some how. But that's very unlikely as you can read below "none after months of beta testing." But I added it you know just incase you guys wanted it off/on cmds.
--Also added log improvements by showing ip & info when a client connects, showing ip when there is a fake player, and showing ip when there is a name with illegal characters.
--Rewrote the information about name crash in readme.
--Added more notes and comments in readme.
--Fixed some typos in the readme. Heh.


*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Installation:
Put it in your base. After testing it appears you cannot run this mod with another mod. It is lame, I know but I guess for those of you who do not have any mods in your server this will be fine. It does not take the server off the list when you press Game Version: All/JK2... when it is on Jedi Knight II it'll still appear on the list.


*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Commands:
-jd_antiNameCrash = Turns off and on the anti name crash part of the mod. (0 = off, 1 = on)
-jd_antiForceCrash = Turns off and on the anti force crash part of the mod. (0 = off, 1 = on)
-jd_FakePlayerDetection = turns off and on the anti fake players bug part of the mod. (0 = off, 1 = on)


*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Descriptions of how the exploits work in JK2 1.04:

--Model, Saber & Name Flood - the reason this lags you, lags you out, slows you down or doesn't harm you at all is quite simple. It lags you because the overflow you are loading onto your client, in front of some one is more vulnerable because you have to visually see the changes. If you have higher ping you are more vulnerable because it overflows the amount you have and since you have low connection to the server it's more dangerous. The reason(s) it doesn't harm you is because you have very low ping (around 50 ping) or your rate is too low. Change your rate by /rate 75000 that'll stop it if your ping is <100. If your ping is 150+ you're quite screwed. :)

--Force Crash - OK, the reason this works is also simple and sort of logical. If you change your force powers into a number that is not in the calculations of what is set to a proper amount of force (forcepowers 7-2-3333333333333333) it sort of glitches itself since it is not the correct number in the calculations of the force powers. Thus meaning since it is not in the correct calculations, it errors and messes up and causes the server to crash.

--MSGBoom Exploit - MSGBoom in JK2 1.04 is similar to a flood. It sends a large message to the server overflowing it and acting as a flood to client(s) possibly lagging you out. Usually when you are flooded or msgboom'd you will either get "Connection Interrupted" message or be sent to your main menu.

--Illegal Characters Crash(IN THEORY)[REWRITTEN] - I'm not really sure 100% why this works either but I have a theory. The reason I said "illegal characters crash" is because JK2 doesn't support the ascii characters. In the source code theres this little line right here(example): trap_SendServerCommand( -1, va("print\"anything can go here but if it has illegal characters in it like º¿¬§ï¡â¶ it'll create the bug\"));. Some times just having that in your name and talking will make you bug but not crash from my tests. That is how I fixed the crash using a hex editor in JK2 1.02. If that message isn't there and there is no "SendServerCommand of their name" the server can't be sent a message from that part which prevents it. Thus meaning that it 'implodes' itself by having it being send the illegal characters ending up in a crash like force crash.

*~~~~~*
The fixes in this mod that prevent those bugs above in JK2 1.04.

--Model, Saber & Name Flood - I tried making this blend in so it wouldn't be too noticable unless you actually tried to flood. It prevents UserInfoChanges from changing within .50 of a second. That's "wait 50;" is the max you can go in a UserInfoChange (model, saber, name, force). I used to have it as you have to wait three seconds in between changes but that was just too annoying, so I put it as .50 so it's nearly normal and less annoying.

--Force Crash - This fix is a work-around using Gamall's fix for it. The fix does not allow any force string that is not within the field of "#-#-################" the first # is what g_maxforcerank is on, 7 is Jedi Master. The second one can only be two numbers, either 1 or 2. One stands for light side of the force and two stands for dark side of the force. The last 16 numbers stand for whatever you chose. So the string should look like 7-1-332003023030303213.

--MSGBoom Exploit - It will not flood out anyone nor crash the server with this mod. It basically drops any large msg coming to the server and doesn't allow it to be shared.

--Illegal Characters Crash - This denies anyone access that has any illegal character in their name. This is a work-around to the bug because I didn't really know how to fix it, nor did I want to find a way since this works perfectly.

*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Comments & Notes:
-This should result in your JK2 1.04 server being uncrashable. I say that because these are the only known crashes. So if theres any new crashes, there will be another version fixing it from this. [Inyri] :)
-DS Online is still vulnerable to name crash/glitch. DC Mod is vulnerable to flood. So some of the most popular mods aren't fully protected. I tried to make this mod so it works with those mods, but it didn't want to, so you can't use this fix with other modifications.


*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
BUGS: None that I am aware of after months of beta testing.


*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
To Contact me & find more fixes and future updates go to
http://jedidog.freeforums.org/


----------------------------------------------------------
~*Credits for helping, creating & testing:
Dark (creating/helping)
Luigi (helping)
Gamall (using his anti force crash)
Falassion (testing)
Ninn (testing and providing a server for me)
Anarchy (testing)
BigRob (testing)


=========================================================
THIS MODIFICATION IS NOT MADE, DISTRIBUTED, OR SUPPORTED BY ACTIVISION, RAVEN, OR
LUCASARTS ENTERTAINMENT COMPANY LLC. ELEMENTS TM & © LUCASARTS
ENTERTAINMENT COMPANY LLC AND/OR ITS LICENSORS.